package lc20240622;

import java.util.PriorityQueue;

public class KthLargestArrayNum {
    public static void main(String[] args) {
        int[] nums={3,2,1,5,6,4};
        System.out.println(find(nums, 2));
    }
    public int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> minHeap = new PriorityQueue<>();

        // 添加数组中的元素到优先队列中
        for (int num : nums) {
            minHeap.offer(num);

            // 如果优先队列的大小超过 k，移除最小元素
            if (minHeap.size() > k) {
                minHeap.poll();
            }
        }
        // 返回第 k 大的元素，即优先队列中的最大元素
        return minHeap.peek();
    }
    public static int find(int[] nums,int k){
        MinHeap minHeap=new MinHeap(nums.length);
        for (int num : nums) {
            //插入最小堆
            minHeap.insert(num);
            if (minHeap.size()>k){
                //返回最小元素并移除。
                minHeap.extractMin();
            }
        }
        return minHeap.extractMin();
    }
}
